<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of SemaforoAcademico
 *
 * @author MFerreira
 * @export Modules
 * @export-metadata category:Consultas:Sombreado Acad&eacute;mico
 * @export-metadata RequiredRoles:ROLE_STUDENT
 */
class SemaforoAcademico extends Module {

    public function index() {
        $CodigoEstudiante = $this->currentUser->getName();

        $Aprovados = $this->model->registeredCourse->GetAprovados($CodigoEstudiante);
        $Todas = $this->model->syllabus->GetCurrent($CodigoEstudiante);
        $Pendientes = $this->getPendiente($Todas, $Aprovados);

        $this->assign("Pendientes", $Pendientes);
        $this->assign("Aprovadas", $Aprovados);
        $this->assign("Todas", $Todas);

        //$this->assign("Semaforo", $this->ToArray($Aprovados, $Todas));
        $this->assign("action", $this->route->action("index"));
        $this->display();
    }

    private function getPendiente($Todos, $Aprovadas) {
        $Pendientes = array();

        foreach ($Todos as $key => $Pensum) {

            $cursada = FALSE;

            foreach ($Aprovadas as $key => $Materia) {
                if ($Materia->getCurso()->getMateria()->getCodigoMateria() == $Pensum->getPensumPk()->getCodigoMateria()) {
                    $cursada = TRUE;
                }
            }

            if ($cursada == FALSE) {
                $Pendientes[] = $Pensum;
            }
        }

        return $Pendientes;
    }

    private function ToArray($Aprovados, $Pendientes) {
        $Semaforo = array();
        $Semaforo = array();
        foreach ($Aprovados as $key => $Materia) {
            $semesre = $Materia->getCurso()->getCursoPk()->getSemestre();
            if (!array_key_exists($semesre, $Semaforo)) {
                $Semaforo[$semesre] = array();
            }
            $Semaforo[$semesre][] = array("Materia" => $Materia->getCurso()->getMateria()->getNombreMateria(), "Nota" => $Materia->getNotaDefinitiva());
        }
        foreach ($Pendientes as $key => $Pensum) {
            $Codigo = $Pensum->getMateria()->getCodigoMateria();
            $cursada = FALSE;

            foreach ($Aprovados as $key => $Materia) {
                if ($Materia->getCurso()->GetMateria()->getCodigoMateria() == $Codigo) {
                    $cursada = TRUE;
                }
            }

            if (!$cursada) {
                $semesre = $Pensum->getNumeroSemestre();
                if (!array_key_exists($semesre, $Semaforo)) {
                    $Semaforo[$semesre] = array();
                }
                $Semaforo[$semesre][] = array("Materia" => $Pensum->getMateria()->getNombreMateria(), "Nota" => null);
            }
        }

        return $Semaforo;
    }

}

?>
